package com.wifi.eshipewifi;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.wifi.service.PlayFileService;
import com.wifi.utils.FileItem;
import com.wifi.utils.FileUtil;

import java.io.File;
import java.net.MalformedURLException;
import java.util.ArrayList;

import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;


public class PlayfileActivity extends Activity implements OnItemClickListener, OnClickListener {
	private EditText ip;
	private Button add ;
	private TextView tv_include_tittle;
	private ImageButton back = null;
	private ListView list = null;
	private ProgressDialog dialog = null;
	private ArrayAdapter<FileItem> adapter = null;
	private ArrayList<FileItem> al = new ArrayList<FileItem>();
	private SearchTask task = null;
	private String root = "/";
	SharedPreferences sp;
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		sp = getSharedPreferences("wifiSetting", Activity.MODE_PRIVATE);

		Intent intent = new Intent(this, PlayFileService.class);
		startService(intent);

		init();
	}

	private void init()
	{
		dialog = new ProgressDialog(this);
		dialog.setMessage("正在努力加载...");
		dialog.setCanceledOnTouchOutside(false);

		String wayIp = sp.getString("ip", "192.168.77.1");


		al.add(new FileItem("...", root, false));
		add = (Button) findViewById(R.id.add);
		tv_include_tittle = (TextView) findViewById(R.id.tv_include_tittle);
		tv_include_tittle.setText("摩棒视频");
		back = (ImageButton) findViewById(R.id.ib_back);
		ip = (EditText) findViewById(R.id.ip);
		ip.setText(wayIp);//设置网关IP
		list = (ListView) findViewById(R.id.list);
		adapter = new ArrayAdapter<FileItem>(this,
				android.R.layout.simple_list_item_1, al);
		list.setAdapter(adapter);
		list.setOnItemClickListener(this);
		back.setOnClickListener(this);

		add.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
				String ipValue = PlayfileActivity.this.ip.getText().toString();
				adapter.add(new FileItem(ipValue, "smb://" + ipValue + "/",
						false));
				root = "smb://" + ipValue + "/";
			}
		});

	}

	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position,
							long id)
	{
		FileItem fileItem = al.get(position);

		if (fileItem.isFile())
		{
			String ipVal = FileUtil.ip;
			int portVal = FileUtil.port;//"59777"
			String path = fileItem.getPath();
			String httpReq = "http://" + ipVal + ":" + portVal + "/smb/";
//			 String httpReq = "http://" + ip + ":" + "59777" + "/smb=";
			Log.e("", "" + FileUtil.ip + ":" + FileUtil.port + " " + path);
			openFiles(httpReq,path);
		}
		else
		{
			String path = fileItem.getPath();
			searchFile(path);
		}

	}

	private void searchFile(String path)
	{

		if (task == null || task.getStatus().equals(AsyncTask.Status.FINISHED))
		{
			new SearchTask().execute(path);
		}

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()){
			case R.id.ib_back:
				this.finish();
			break;
		}
	}

	class SearchTask extends AsyncTask<String, Void, Void>
	{
		ArrayList<FileItem> item = new ArrayList<FileItem>();

		@Override
		protected void onPreExecute()
		{
			super.onPreExecute();
			dialog.show();
		}

		@Override
		protected Void doInBackground(String... params)
		{

			try
			{
				SmbFile smbFile = new SmbFile(params[0]);

				ArrayList<SmbFile> dirList = new ArrayList<SmbFile>();
				ArrayList<SmbFile> fileList = new ArrayList<SmbFile>();

				SmbFile[] fs = smbFile.listFiles();

				for (SmbFile f : fs)
				{
					if (f.isDirectory())
					{
						dirList.add(f);
					}
					else
					{
						fileList.add(f);
					}
				}

				dirList.addAll(fileList);

				for (SmbFile f : dirList)
				{
					String filePath = f.getPath();
					String fileName = f.getName();
					boolean isFile = f.isFile();
					Log.e("", "fileName: " + fileName + " " + filePath
							+ " isFile: " + isFile);
					item.add(new FileItem(fileName, filePath, isFile));
				}

			}
			catch (MalformedURLException e)
			{
				e.printStackTrace();
			}
			catch (SmbException e)
			{
				e.printStackTrace();
			}

			return null;
		}

		@Override
		protected void onPostExecute(Void result)
		{
			super.onPostExecute(result);

			if (!item.isEmpty())
			{
				adapter.clear();
				adapter.add(new FileItem("...", root, false));
				for (FileItem i : item)
				{
					adapter.add(i);
				}
			}
			else
			{
				Toast.makeText(PlayfileActivity.this, "加载失败了，请重试 ",
						Toast.LENGTH_SHORT).show();
			}

			dialog.cancel();
		}

	}

	@Override
	protected void onDestroy()
	{
		super.onDestroy();
		Intent intent = new Intent(this, PlayFileService.class);
		stopService(intent);
	}


	//打开文件时调用
	public void openFiles(String httpReq, String filesPath) {

		filesPath = filesPath.substring(6);
		String url = httpReq + filesPath;//添加尝试
//		Uri uri = Uri.parse("file://" + url);
		Uri uri = Uri.parse( url);

//		Uri uri = Uri.parse("file://" + filesPath);
		Intent intent = new Intent();
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		intent.setAction(Intent.ACTION_VIEW);
		String type = getMIMEType(filesPath);
		intent.setDataAndType(uri, type);
		if (!type.equals("*/*")) {
			try {
				startActivity(intent);
			} catch (Exception e) {
				startActivity(showOpenTypeDialog(filesPath));
			}
//			startActivity(intent);
		} else {
			startActivity(showOpenTypeDialog(filesPath));
		}
	}

	//显示打开方式
	public void show(String filesPath){
		Intent intent = new Intent();
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		intent.setAction(Intent.ACTION_VIEW);
		startActivity(showOpenTypeDialog(filesPath));
	}

	public static Intent showOpenTypeDialog(String param) {
		Log.e("ViChildError", "showOpenTypeDialog");
		Intent intent = new Intent();
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		intent.setAction(android.content.Intent.ACTION_VIEW);
		Uri uri = Uri.fromFile(new File(param));
		intent.setDataAndType(uri, "*/*");
		return intent;
	}

	/**
	 * --获取文件类型 --
	 */
	public static String getMIMEType(String filePath) {
		String type = "*/*";
		String fName = filePath;

		int dotIndex = fName.lastIndexOf(".");
		if (dotIndex < 0) {
			return type;
		}

		String end = fName.substring(dotIndex, fName.length()).toLowerCase();
		if (end == "") {
			return type;
		}

		for (int i = 0; i < MIME_MapTable.length; i++) {
			if (end.equals(MIME_MapTable[i][0])) {
				type = MIME_MapTable[i][1];
			}
		}
		return type;
	}

	/**
	 * -- MIME 列表 --
	 */
	public static final String[][] MIME_MapTable =
			{
					// --{后缀名， MIME类型}   --
					{".3gp", "video/3gpp"},
					{".3gpp", "video/3gpp"},
					{".aac", "audio/x-mpeg"},
					{".amr", "audio/x-mpeg"},
					{".apk", "application/vnd.android.package-archive"},
					{".avi", "video/x-msvideo"},
					{".aab", "application/x-authoware-bin"},
					{".aam", "application/x-authoware-map"},
					{".aas", "application/x-authoware-seg"},
					{".ai", "application/postscript"},
					{".aif", "audio/x-aiff"},
					{".aifc", "audio/x-aiff"},
					{".aiff", "audio/x-aiff"},
					{".als", "audio/x-alpha5"},
					{".amc", "application/x-mpeg"},
					{".ani", "application/octet-stream"},
					{".asc", "text/plain"},
					{".asd", "application/astound"},
					{".asf", "video/x-ms-asf"},
					{".asn", "application/astound"},
					{".asp", "application/x-asap"},
					{".asx", " video/x-ms-asf"},
					{".au", "audio/basic"},
					{".avb", "application/octet-stream"},
					{".awb", "audio/amr-wb"},
					{".bcpio", "application/x-bcpio"},
					{".bld", "application/bld"},
					{".bld2", "application/bld2"},
					{".bpk", "application/octet-stream"},
					{".bz2", "application/x-bzip2"},
					{".bin", "application/octet-stream"},
					{".bmp", "image/bmp"},
					{".c", "text/plain"},
					{".class", "application/octet-stream"},
					{".conf", "text/plain"},
					{".cpp", "text/plain"},
					{".cal", "image/x-cals"},
					{".ccn", "application/x-cnc"},
					{".cco", "application/x-cocoa"},
					{".cdf", "application/x-netcdf"},
					{".cgi", "magnus-internal/cgi"},
					{".chat", "application/x-chat"},
					{".clp", "application/x-msclip"},
					{".cmx", "application/x-cmx"},
					{".co", "application/x-cult3d-object"},
					{".cod", "image/cis-cod"},
					{".cpio", "application/x-cpio"},
					{".cpt", "application/mac-compactpro"},
					{".crd", "application/x-mscardfile"},
					{".csh", "application/x-csh"},
					{".csm", "chemical/x-csml"},
					{".csml", "chemical/x-csml"},
					{".css", "text/css"},
					{".cur", "application/octet-stream"},
					{".doc", "application/msword"},
					{".dcm", "x-lml/x-evm"},
					{".dcr", "application/x-director"},
					{".dcx", "image/x-dcx"},
					{".dhtml", "text/html"},
					{".dir", "application/x-director"},
					{".dll", "application/octet-stream"},
					{".dmg", "application/octet-stream"},
					{".dms", "application/octet-stream"},
					{".dot", "application/x-dot"},
					{".dvi", "application/x-dvi"},
					{".dwf", "drawing/x-dwf"},
					{".dwg", "application/x-autocad"},
					{".dxf", "application/x-autocad"},
					{".dxr", "application/x-director"},
					{".ebk", "application/x-expandedbook"},
					{".emb", "chemical/x-embl-dl-nucleotide"},
					{".embl", "chemical/x-embl-dl-nucleotide"},
					{".eps", "application/postscript"},
					{".epub", "application/epub+zip"},
					{".eri", "image/x-eri"},
					{".es", "audio/echospeech"},
					{".esl", "audio/echospeech"},
					{".etc", "application/x-earthtime"},
					{".etx", "text/x-setext"},
					{".evm", "x-lml/x-evm"},
					{".evy", "application/x-envoy"},
					{".exe", "application/octet-stream"},
					{".fh4", "image/x-freehand"},
					{".fh5", "image/x-freehand"},
					{".fhc", "image/x-freehand"},
					{".fif", "image/fif"},
					{".fm", "application/x-maker"},
					{".fpx", "image/x-fpx"},
					{".fvi", "video/isivideo"},
					{".flv", "video/x-msvideo"},
					{".gau", "chemical/x-gaussian-input"},
					{".gca", "application/x-gca-compressed"},
					{".gdb", "x-lml/x-gdb"},
					{".gif", "image/gif"},
					{".gps", "application/x-gps"},
					{".gtar", "application/x-gtar"},
					{".gz", "application/x-gzip"},
					{".gif", "image/gif"},
					{".gtar", "application/x-gtar"},
					{".gz", "application/x-gzip"},
					{".h", "text/plain"},
					{".hdf", "application/x-hdf"},
					{".hdm", "text/x-hdml"},
					{".hdml", "text/x-hdml"},
					{".htm", "text/html"},
					{".html", "text/html"},
					{".hlp", "application/winhlp"},
					{".hqx", "application/mac-binhex40"},
					{".hts", "text/html"},
					{".ice", "x-conference/x-cooltalk"},
					{".ico", "application/octet-stream"},
					{".ief", "image/ief"},
					{".ifm", "image/gif"},
					{".ifs", "image/ifs"},
					{".imy", "audio/melody"},
					{".ins", "application/x-net-install"},
					{".ips", "application/x-ipscript"},
					{".ipx", "application/x-ipix"},
					{".it", "audio/x-mod"},
					{".itz", "audio/x-mod"},
					{".ivr", "i-world/i-vrml"},
					{".j2k", "image/j2k"},
					{".jad", "text/vnd.sun.j2me.app-descriptor"},
					{".jam", "application/x-jam"},
					{".jnlp", "application/x-java-jnlp-file"},
					{".jpe", "image/jpeg"},
					{".jpz", "image/jpeg"},
					{".jwc", "application/jwc"},
					{".jar", "application/java-archive"},
					{".java", "text/plain"},
					{".jpeg", "image/jpeg"},
					{".jpg", "image/jpeg"},
					{".js", "application/x-javascript"},
					{".kjx", "application/x-kjx"},
					{".lak", "x-lml/x-lak"},
					{".latex", "application/x-latex"},
					{".lcc", "application/fastman"},
					{".lcl", "application/x-digitalloca"},
					{".lcr", "application/x-digitalloca"},
					{".lgh", "application/lgh"},
					{".lha", "application/octet-stream"},
					{".lml", "x-lml/x-lml"},
					{".lmlpack", "x-lml/x-lmlpack"},
					{".log", "text/plain"},
					{".lsf", "video/x-ms-asf"},
					{".lsx", "video/x-ms-asf"},
					{".lzh", "application/x-lzh "},
					{".m13", "application/x-msmediaview"},
					{".m14", "application/x-msmediaview"},
					{".m15", "audio/x-mod"},
					{".m3u", "audio/x-mpegurl"},
					{".m3url", "audio/x-mpegurl"},
					{".ma1", "audio/ma1"},
					{".ma2", "audio/ma2"},
					{".ma3", "audio/ma3"},
					{".ma5", "audio/ma5"},
					{".man", "application/x-troff-man"},
					{".map", "magnus-internal/imagemap"},
					{".mbd", "application/mbedlet"},
					{".mct", "application/x-mascot"},
					{".mdb", "application/x-msaccess"},
					{".mdz", "audio/x-mod"},
					{".me", "application/x-troff-me"},
					{".mel", "text/x-vmel"},
					{".mi", "application/x-mif"},
					{".mid", "audio/midi"},
					{".midi", "audio/midi"},
					{".m4a", "audio/mp4a-latm"},
					{".m4b", "audio/mp4a-latm"},
					{".m4p", "audio/mp4a-latm"},
					{".m4u", "video/vnd.mpegurl"},
					{".m4v", "video/x-m4v"},
					{".mov", "video/quicktime"},
					{".mp2", "audio/x-mpeg"},
					{".mp3", "audio/x-mpeg"},
					{".mp4", "video/mp4"},
					{".mpc", "application/vnd.mpohun.certificate"},
					{".mpe", "video/mpeg"},
					{".mpeg", "video/mpeg"},
					{".mpg", "video/mpeg"},
					{".mpg4", "video/mp4"},
					{".mpga", "audio/mpeg"},
					{".msg", "application/vnd.ms-outlook"},
					{".mif", "application/x-mif"},
					{".mil", "image/x-cals"},
					{".mio", "audio/x-mio"},
					{".mmf", "application/x-skt-lbs"},
					{".mng", "video/x-mng"},
					{".mny", "application/x-msmoney"},
					{".moc", "application/x-mocha"},
					{".mocha", "application/x-mocha"},
					{".mod", "audio/x-mod"},
					{".mof", "application/x-yumekara"},
					{".mol", "chemical/x-mdl-molfile"},
					{".mop", "chemical/x-mopac-input"},
					{".movie", "video/x-sgi-movie"},
					{".mpn", "application/vnd.mophun.application"},
					{".mpp", "application/vnd.ms-project"},
					{".mps", "application/x-mapserver"},
					{".mrl", "text/x-mrml"},
					{".mrm", "application/x-mrm"},
					{".ms", "application/x-troff-ms"},
					{".mts", "application/metastream"},
					{".mtx", "application/metastream"},
					{".mtz", "application/metastream"},
					{".mzv", "application/metastream"},
					{".nar", "application/zip"},
					{".nbmp", "image/nbmp"},
					{".nc", "application/x-netcdf"},
					{".ndb", "x-lml/x-ndb"},
					{".ndwn", "application/ndwn"},
					{".nif", "application/x-nif"},
					{".nmz", "application/x-scream"},
					{".nokia-op-logo", "image/vnd.nok-oplogo-color"},
					{".npx", "application/x-netfpx"},
					{".nsnd", "audio/nsnd"},
					{".nva", "application/x-neva1"},
					{".oda", "application/oda"},
					{".oom", "application/x-atlasMate-plugin"},
					{".ogg", "audio/ogg"},
					{".pac", "audio/x-pac"},
					{".pae", "audio/x-epac"},
					{".pan", "application/x-pan"},
					{".pbm", "image/x-portable-bitmap"},
					{".pcx", "image/x-pcx"},
					{".pda", "image/x-pda"},
					{".pdb", "chemical/x-pdb"},
					{".pdf", "application/pdf"},
					{".pfr", "application/font-tdpfr"},
					{".pgm", "image/x-portable-graymap"},
					{".pict", "image/x-pict"},
					{".pm", "application/x-perl"},
					{".pmd", "application/x-pmd"},
					{".png", "image/png"},
					{".pnm", "image/x-portable-anymap"},
					{".pnz", "image/png"},
					{".pot", "application/vnd.ms-powerpoint"},
					{".ppm", "image/x-portable-pixmap"},
					{".pps", "application/vnd.ms-powerpoint"},
					{".ppt", "application/vnd.ms-powerpoint"},
					{".pqf", "application/x-cprplayer"},
					{".pqi", "application/cprplayer"},
					{".prc", "application/x-prc"},
					{".proxy", "application/x-ns-proxy-autoconfig"},
					{".prop", "text/plain"},
					{".ps", "application/postscript"},
					{".ptlk", "application/listenup"},
					{".pub", "application/x-mspublisher"},
					{".pvx", "video/x-pv-pvx"},
					{".qcp", "audio/vnd.qcelp"},
					{".qt", "video/quicktime"},
					{".qti", "image/x-quicktime"},
					{".qtif", "image/x-quicktime"},
					{".r3t", "text/vnd.rn-realtext3d"},
					{".ra", "audio/x-pn-realaudio"},
					{".ram", "audio/x-pn-realaudio"},
					{".ras", "image/x-cmu-raster"},
					{".rdf", "application/rdf+xml"},
					{".rf", "image/vnd.rn-realflash"},
					{".rgb", "image/x-rgb"},
					{".rlf", "application/x-richlink"},
					{".rm", "audio/x-pn-realaudio"},
					{".rmf", "audio/x-rmf"},
					{".rmm", "audio/x-pn-realaudio"},
					{".rnx", "application/vnd.rn-realplayer"},
					{".roff", "application/x-troff"},
					{".rp", "image/vnd.rn-realpix"},
					{".rpm", "audio/x-pn-realaudio-plugin"},
					{".rt", "text/vnd.rn-realtext"},
					{".rte", "x-lml/x-gps"},
					{".rtf", "application/rtf"},
					{".rtg", "application/metastream"},
					{".rtx", "text/richtext"},
					{".rv", "video/vnd.rn-realvideo"},
					{".rwc", "application/x-rogerwilco"},
					{".rar", "application/x-rar-compressed"},
					{".rc", "text/plain"},
					{".rmvb", "audio/x-pn-realaudio"},
					{".s3m", "audio/x-mod"},
					{".s3z", "audio/x-mod"},
					{".sca", "application/x-supercard"},
					{".scd", "application/x-msschedule"},
					{".sdf", "application/e-score"},
					{".sea", "application/x-stuffit"},
					{".sgm", "text/x-sgml"},
					{".sgml", "text/x-sgml"},
					{".shar", "application/x-shar"},
					{".shtml", "magnus-internal/parsed-html"},
					{".shw", "application/presentations"},
					{".si6", "image/si6"},
					{".si7", "image/vnd.stiwap.sis"},
					{".si9", "image/vnd.lgtwap.sis"},
					{".sis", "application/vnd.symbian.install"},
					{".sit", "application/x-stuffit"},
					{".skd", "application/x-koan"},
					{".skm", "application/x-koan"},
					{".skp", "application/x-koan"},
					{".skt", "application/x-koan"},
					{".slc", "application/x-salsa"},
					{".smd", "audio/x-smd"},
					{".smi", "application/smil"},
					{".smil", "application/smil"},
					{".smp", "application/studiom"},
					{".smz", "audio/x-smd"},
					{".sh", "application/x-sh"},
					{".snd", "audio/basic"},
					{".spc", "text/x-speech"},
					{".spl", "application/futuresplash"},
					{".spr", "application/x-sprite"},
					{".sprite", "application/x-sprite"},
					{".sdp", "application/sdp"},
					{".spt", "application/x-spt"},
					{".src", "application/x-wais-source"},
					{".stk", "application/hyperstudio"},
					{".stm", "audio/x-mod"},
					{".sv4cpio", "application/x-sv4cpio"},
					{".sv4crc", "application/x-sv4crc"},
					{".svf", "image/vnd"},
					{".svg", "image/svg-xml"},
					{".svh", "image/svh"},
					{".svr", "x-world/x-svr"},
					{".swf", "application/x-shockwave-flash"},
					{".swfl", "application/x-shockwave-flash"},
					{".t", "application/x-troff"},
					{".tad", "application/octet-stream"},
					{".talk", "text/x-speech"},
					{".tar", "application/x-tar"},
					{".taz", "application/x-tar"},
					{".tbp", "application/x-timbuktu"},
					{".tbt", "application/x-timbuktu"},
					{".tcl", "application/x-tcl"},
					{".tex", "application/x-tex"},
					{".texi", "application/x-texinfo"},
					{".texinfo", "application/x-texinfo"},
					{".tgz", "application/x-tar"},
					{".thm", "application/vnd.eri.thm"},
					{".tif", "image/tiff"},
					{".tiff", "image/tiff"},
					{".tki", "application/x-tkined"},
					{".tkined", "application/x-tkined"},
					{".toc", "application/toc"},
					{".toy", "image/toy"},
					{".tr", "application/x-troff"},
					{".trk", "x-lml/x-gps"},
					{".trm", "application/x-msterminal"},
					{".tsi", "audio/tsplayer"},
					{".tsp", "application/dsptype"},
					{".tsv", "text/tab-separated-values"},
					{".ttf", "application/octet-stream"},
					{".ttz", "application/t-time"},
					{".txt", "text/plain"},
					{".ult", "audio/x-mod"},
					{".ustar", "application/x-ustar"},
					{".uu", "application/x-uuencode"},
					{".uue", "application/x-uuencode"},
					{".vcd", "application/x-cdlink"},
					{".vcf", "text/x-vcard"},
					{".vdo", "video/vdo"},
					{".vib", "audio/vib"},
					{".viv", "video/vivo"},
					{".vivo", "video/vivo"},
					{".vmd", "application/vocaltec-media-desc"},
					{".vmf", "application/vocaltec-media-file"},
					{".vmi", "application/x-dreamcast-vms-info"},
					{".vms", "application/x-dreamcast-vms"},
					{".vox", "audio/voxware"},
					{".vqe", "audio/x-twinvq-plugin"},
					{".vqf", "audio/x-twinvq"},
					{".vql", "audio/x-twinvq"},
					{".vre", "x-world/x-vream"},
					{".vrml", "x-world/x-vrml"},
					{".vrt", "x-world/x-vrt"},
					{".vrw", "x-world/x-vream"},
					{".vts", "workbook/formulaone"},
					{".wax", "audio/x-ms-wax"},
					{".wbmp", "image/vnd.wap.wbmp"},
					{".web", "application/vnd.xara"},
					{".wav", "audio/x-wav"},
					{".wma", "audio/x-ms-wma"},
					{".wmv", "audio/x-ms-wmv"},
					{".wi", "image/wavelet"},
					{".wis", "application/x-InstallShield"},
					{".wm", "video/x-ms-wm"},
					{".wmd", "application/x-ms-wmd"},
					{".wmf", "application/x-msmetafile"},
					{".wml", "text/vnd.wap.wml"},
					{".wmlc", "application/vnd.wap.wmlc"},
					{".wmls", "text/vnd.wap.wmlscript"},
					{".wmlsc", "application/vnd.wap.wmlscriptc"},
					{".wmlscript", "text/vnd.wap.wmlscript"},
					{".wmv", "video/x-ms-wmv"},
					{".wmx", "video/x-ms-wmx"},
					{".wmz", "application/x-ms-wmz"},
					{".wpng", "image/x-up-wpng"},
					{".wps", "application/vnd.ms-works"},
					{".wpt", "x-lml/x-gps"},
					{".wri", "application/x-mswrite"},
					{".wrl", "x-world/x-vrml"},
					{".wrz", "x-world/x-vrml"},
					{".ws", "text/vnd.wap.wmlscript"},
					{".wsc", "application/vnd.wap.wmlscriptc"},
					{".wv", "video/wavelet"},
					{".wvx", "video/x-ms-wvx"},
					{".wxl", "application/x-wxl"},
					{".x-gzip", "application/x-gzip"},
					{".xar", "application/vnd.xara"},
					{".xbm", "image/x-xbitmap"},
					{".xdm", "application/x-xdma"},
					{".xdma", "application/x-xdma"},
					{".xdw", "application/vnd.fujixerox.docuworks"},
					{".xht", "application/xhtml+xml"},
					{".xhtm", "application/xhtml+xml"},
					{".xhtml", "application/xhtml+xml"},
					{".xla", "application/vnd.ms-excel"},
					{".xlc", "application/vnd.ms-excel"},
					{".xll", "application/x-excel"},
					{".xlm", "application/vnd.ms-excel"},
					{".xls", "application/vnd.ms-excel"},
					{".xlt", "application/vnd.ms-excel"},
					{".xlw", "application/vnd.ms-excel"},
					{".xm", "audio/x-mod"},
					{".xml", "text/xml"},
					{".xmz", "audio/x-mod"},
					{".xpi", "application/x-xpinstall"},
					{".xpm", "image/x-xpixmap"},
					{".xsit", "text/xml"},
					{".xsl", "text/xml"},
					{".xul", "text/xul"},
					{".xwd", "image/x-xwindowdump"},
					{".xyz", "chemical/x-pdb"},
					{".yz1", "application/x-yz1"},
					{".z", "application/x-compress"},
					{".zac", "application/x-zaurus-zac"},
					{".zip", "application/zip"},
					{"", "*/*"}
			};

}